//index.js
//获取应用实例
var common = require('../../utils/common.js');
var app = getApp();
//使用function初始化array，相比var initSubMenuDisplay = [] 既避免的引用复制的，
//同时方式更灵活，将来可以是多种方式实现，个数也不定的
function initSubMenuDisplay() {
  return ['hidden', 'hidden', 'hidden'];
}
function initSubMenuTitle() {
  return ['区域', '价格', '其它'];
}
//声明初始化高亮状态数组
function initSubMenuHighLight() {    
  return [['', ''],['', '', '', '', ''],['', '', '']];
}
function initAllMuDisplay() {
  return ['hidden'];
}
Page({
  data: {
    array: [],
    page: 0,
    subMenuDisplay: initSubMenuDisplay(),
    subMenuTitle: initSubMenuTitle(),
    subMenuHighLight: initSubMenuHighLight(),
    allMuDisplay: initAllMuDisplay()
  },
  tapAllMu: function (e) {
    this.setData({
      subMenuDisplay: initSubMenuDisplay(),
      allMuDisplay: initAllMuDisplay()
    });        
  },
  tapMainMenu: function (e) {
    // 获取当前显示的一级菜单标识
    var index = parseInt(e.currentTarget.dataset.index); 
    // 生成数组，全为hidden的，只对当前的进行显示
    var newSubMenuDisplay = initSubMenuDisplay();
    var newAllMuDisplay = initAllMuDisplay();
    // 如果目前是显示则隐藏，反之亦反之。同时要隐藏其他的菜单
    if (this.data.subMenuDisplay[index] == 'hidden') {
      newSubMenuDisplay[index] = 'show';
      newAllMuDisplay[0] = 'show';
    } else {
      newSubMenuDisplay[index] = 'hidden';
      newAllMuDisplay[0] = 'hidden';
    }       
     // 设置为新的数组
    this.setData({
      subMenuDisplay: newSubMenuDisplay,
      allMuDisplay: newAllMuDisplay
    });
  },
  //获取当前显示的一级菜单标识
  tapSubMenu: function (e) {
    this.setData({
      subMenuDisplay: initSubMenuDisplay(),
      allMuDisplay: initAllMuDisplay()
    });        
    // 处理二级菜单，首先获取当前显示的二级菜单标识
    var indexArray = e.currentTarget.dataset.index.split('-'); 
    var title = e.currentTarget.dataset.title; 
    var newSubMenuHighLight = this.data.subMenuHighLight;
    var newSubMenuTitle = this.data.subMenuTitle;
    for (var i = 0; i < newSubMenuHighLight.length; i++) {            
      // 如果点中的是一级菜单，则先清空状态，即非高亮模式，然后再高亮点中的二级菜单；
      // 如果不是当前菜单，而不理会。经过这样处理就能保留其他菜单的高亮状态
      if (indexArray[0] == i) {
        for (var j = 0; j < newSubMenuHighLight[i].length; j++) {                    
          // 实现清空
          newSubMenuHighLight[i][j] = '';
        }
      }
    }        
    // 与一级菜单不同，这里不需要判断当前状态，只需要点击就给class赋予highlight即可
    newSubMenuHighLight[indexArray[0]][indexArray[1]] = 'highlight';
    newSubMenuTitle[indexArray[0]] = title;
    // 设置为新的数组
    this.setData({
      subMenuHighLight: newSubMenuHighLight,
      subMenuTitle: newSubMenuTitle
    });
  },
  //事件处理函数
  bindShowData: function(){
    wx.navigateTo({
      url: '../show/show'
    });
  },
  onLoad: function () {
    this.setData({
      array: [],
      page: 0
    });
    common.loadListData(this);
  },
  /**
  * 页面上拉触底事件的处理函数
  */
  onReachBottom: function () {
    console.log("onReachBottom");
    common.loadListData(this);
  },
  onShareAppMessage: function () {
    return {
      title: '呆蜗牛小测试',
      path: '/page/index/index'
    }
  },
  onPullDownRefresh: function(){
    console.log("onPullDownRefresh");
    this.setData({
      array: [],
      page: 0
    });
    common.loadListData(this);
  }
})
